package ar.com.tallerdos.smartdinner.gson.serializer;

import java.lang.reflect.Type;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import android.annotation.SuppressLint;
import android.util.Log;
import ar.com.tallerdos.smartdinner.model.Descuento;

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;

public class DescuentoSerializer implements JsonDeserializer<Descuento> {

    @SuppressLint("SimpleDateFormat")
    @Override
    public Descuento deserialize(JsonElement json, Type arg1,
	    JsonDeserializationContext arg2) throws JsonParseException {
	
	JsonObject jo = (JsonObject) json;
	
	Descuento descuento = new Descuento();
	descuento.setCodigo(jo.get("codigo").getAsString());
	descuento.setDescripcion(jo.get("descripcion").getAsString());
	descuento.setId(jo.get("id").getAsInt());
	descuento.setPorcentaje(jo.get("porcentaje").getAsInt());
	
	SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
	
	try {
	    if (jo.get("fecha_desde") != null && !JsonNull.INSTANCE.equals(jo.get("fecha_desde"))) {
		descuento.setValidezDesde(format.parse(jo.get("fecha_desde").getAsString()));
	    }
	    if (jo.get("fecha_hasta") != null && !JsonNull.INSTANCE.equals(jo.get("fecha_hasta"))) {
		descuento.setValidezHasta(format.parse(jo.get("fecha_hasta").getAsString()));
	    }
	} catch (ParseException e) {
	    e.printStackTrace();
	    Log.e("DescuentoSerializer",
		    "Se pudrio todo cuando se parseaba el descuento");
	}
	return descuento;
    }
    
    

}
